import fitz  # PyMuPDF
import json
import os

def find_pdf_files(directory):
    """
    遍历指定目录，返回所有PDF文件的绝对路径列表。

    :param directory: 要遍历的目录的路径
    :return: 包含所有PDF文件绝对路径的列表
    """
    print(directory)
    pdf_files = []  # 存储找到的PDF文件的绝对路径
    for root, dirs, files in os.walk(directory):
        for file in files:
            # print("ok")
            if file.lower().endswith('.pdf'):  # 检查文件后缀是否为.pdf
                pdf_files.append(os.path.join(root, file))  # 添加文件的绝对路径
    return pdf_files

def pdf_to_json(pdf_file, json_file):
    # 打开 PDF 文件
    doc = fitz.open(pdf_file)    
    # 初始化一个字典来存储 JSON 数据
    json_data={}   
    # 遍历 PDF 中的每一页
    for page_number in range(len(doc)):
        page = doc[page_number]
        # 提取当前页的文本
        text = page.get_text()
        # 将提取的文本添加到 JSON 数据的 pages 列表中
        json_data["page_{}".format(page_number)] = {
        "text": text
    }  
    doc.close()

        # 将 JSON 数据写入文件
    with open(json_file, "w", encoding="utf-8") as jsonfile:
            json.dump(json_data, jsonfile, ensure_ascii=False, indent=4) 
    # 关闭文档
    

# 使用示例,注意文件目录的写法，使用双反斜杠不行
directory_path = (r'C:\Users\awu\projects\tencent-ocr-analysis-master\pdf\src_pdf')
input_pdf_list =find_pdf_files(directory_path)
for input_pdf in input_pdf_list:    
    print(input_pdf)
    # 将 PDF 文件转换为 JSON 文件
    str_file=input_pdf.replace(".pdf",".json")
    out_file=str_file.replace(r'pdf\img_pdf',"mupdf_json")
    pdf_to_json(input_pdf, out_file)

